const { Controller } = require('egg');
const responseMid = require('../middleware/response');

const url = require('url');
/**
 * 响应码内容，如是链接302到链接，否则直接返回body
 */
class ReqQrcodeController extends Controller {
  async find() {
    const { ctx, service } = this;
    const { stamp } = ctx.params;

    // 查找带有指定 stamp 的记录
    const result = await service.generateQrcode.findByStamp(stamp);
    if (!result) {
      responseMid.fail(500, 'QR code not found');
      return;
    }
    console.log('扫码找到对应的数据', result);
    const content = result.content;
    const parsedUrl = url.parse(content);

    // 使用 url.parse 简单判断 content 是否为链接
    // 注意：这只是一个基础判断，复杂情况下可能需要更严格的验证
    if (parsedUrl.protocol && parsedUrl.hostname) {
      // content 看起来像是一个链接，执行重定向
      ctx.redirect(content);
    } else {
      // content 不是链接，直接返回内容
      ctx.status = 200;
      ctx.body = content;
    }
  }
}

module.exports = ReqQrcodeController;
